Code mẫu JavaScript đồng bộ tooltip trên nhiều biểu đồ/đồ thị
Mẫu biểu đồ Syncing Tooltip cho phép phân tích các tham số trên nhiều biểu đồ trong một trang. Thư viện CanvasJS cung cấp API để tạo mẫu tương tự. Dưới đây là mã JavaScript tạo biểu đồ dữ liệu phân tích web với tooltip đồng bộ.
```html
window.onload = function() {
var charts = [];
var axisX = {
labelFormatter: function() { return ''; },
tickLength: 0,
lineThickness: 0
};
var axisY = {
labelFormatter: function() { return ''; },
tickLength: 0,
gridThickness: 0
};
var newUserOptions = {
animationEnabled: true,
theme: "light2",
title: { text: "Người dùng mới", fontSize: 18, verticalAlign: "bottom" },
axisX: axisX,
axisY: axisY,
data: [{
type: "splineArea", // có thể thay đổi sang bar, line, area, pie, v.v.
markerSize: 0,
dataPoints: [
{ x: new Date(2018, 0, 1), y: 74553 },
{ x: new Date(2018, 1, 1), y: 75374 },
{ x: new Date(2018
Dưới đây là phiên bản ngắn gọn của đoạn văn:
Dữ liệu gồm các điểm sau:
- Đối với dataPoints (giá trị y):
- 01/01/2018: 0.4731, 01/02/2018: 0.4743, 01/03/2018: 0.4760, 01/04/2018: 0.4751, 01/05/2018: 0.4757, 01/06/2018: 0.4761, 01/07/2018: 0.4768, 01/08/2018: 0.4771, 01/09/2018: 0.4773, 01/10/2018: 0.4764, 01/11/2018: 0.4757, 01/12/2018: 0.4751.
- Tùy chọn pageViews: animationEnabled=true, theme=light2, title="Lượt xem trang", data type=splineArea (có thể thay đổi sang bar, line, area, pie), markerSize=0, với các điểm dữ liệu:
- 01/01/2018: 897533, 01/02/2018: 898699, 01/03/2018: 900047
Dưới đây là phiên bản ngắn gọn của đoạn mã bạn cung cấp:
```javascript
const charts = [
new CanvasJS.Chart("chartContainer1", visitorsOptions),
new CanvasJS.Chart("chartContainer2", newUserOptions),
new CanvasJS.Chart("chartContainer3", pageViewsOptions),
new CanvasJS.Chart("chartContainer4", bounceRateOptions)
];
// Đồng bộ tooltip cho các biểu đồ
function syncTooltip(charts) {
for (let i = 0; i < charts.length; i++) {
charts[i].render();
if (!this.onToolTipUpdated) {
this.onToolTipUpdated = function(e) {
for (let j = 0; j < charts.length; j++) {
if (charts[j] !== e.chart) {
charts[j].toolTip.showAtX(e.entries[0].xValue);
}
}
};
}
if (!this.onToolTipHidden) {
this.onToolTipHidden = function(e) {
for (let j = 0; j < charts.length; j++) {
if (charts[j] !== e.chart) {
charts[j].toolTip.hide();
}
}
};
}
}
}
// Cập nhật tooltip nếu cần
for (let i = 0; i < charts.length; i++) {
if (!charts[i].options.toolTip) {
charts[i].options
Dưới đây là phiên bản ngắn gọn của nội dung bạn đã cung cấp:
```html
```
Tóm tắt:
- Thiết lập các container cho biểu đồ với chiều cao 370px và chiều rộng 100%.
- Sử dụng thư viện CanvasJS để vẽ biểu đồ và hỗ trợ tùy biến cùng đồng bộ hóa các trục.
Source: https://quantrimang.com/hoc/code-mau-javascript-dong-bo-tooltip-tren-nhieu-bieu-do-do-thi-195033